﻿
namespace CNG
{

    /// <summary>
    ///     Well known algorithm names
    /// </summary>
    internal static class Algorithm
    {
        public const string CTR_DRBG = "RNG";          // BCRYPT_RNG_ALGORITHM
        public const string DUAL_EC = "DUALECRNG";     // BCRYPT_RNG_DUAL_EC_ALGORITHM
        public const string DSS = "FIPS186DSARNG";     // BCRYPT_RNG_FIPS186_DSA_ALGORITHM
    }


    public sealed class CTR_DRBG : RandomNextGen
    {
        public CTR_DRBG() : base(Algorithm.CTR_DRBG) { }
    }

    public sealed class DSS : RandomNextGen
    {
        public DSS() : base(Algorithm.DSS) { }
    }

    public sealed class DUAL_EC : RandomNextGen
    {
        public DUAL_EC() : base(Algorithm.DUAL_EC) { }
    }
}
